// SPDX-FileCopyrightText: Adam Evyčędo
//
// SPDX-License-Identifier: AGPL-3.0-or-later

= Changelog

All notable changes to this project will be documented in this file.

The format is based on https://keepachangelog.com/en/1.0.0/[Keep a Changelog], but uses AsciiDoc instead of Markdown,
and this project adheres to https://semver.org/spec/v2.0.0.html[Semantic Versioning].

== Unreleased

=== in progress

* BAF9: gott v2 + error handling

=== Added

* BAF11: TRAFFIC: trip shape
* GTFS pathways, waypoints, levels
* [grzesiu] journey planning
* BAF21: route for shape on map (either by line -> all shapes, or by trip -> one shape)
* BAF28: advanced query for departures (eg. (line=610&stop=LUKLL01)||(line=611&stop=LLIMB91))
* BAF31: return delay in Vehicle/return offset in Departure
* go1.21 refactor (e.g. https://www.sethvargo.com/things-im-excited-for-in-go-1-21/#slies-and-maps-packages)
* config in dirty
* [w/czwek] gtfs-rt feed with bimba anouncements in all feeds
* show only stops type:platform on map but if stop type:platform has a parent that has any Portals (stop type:door) -> show portals on map; button with departures leads to Activity with list of Stops in Node (parent stop type:station)
* RT: trip_update.stop_time_update.schedule_relationship
* request to gtfs-rt feed not if 30s passed, but if feed changed
* translate feed name

=== Changed

* BAF10: strict types and enums
* BAF30: if departure is at-stop or incoming but time is not <=1m then return in-transit – only for starting terminus
* agency in api/line

=== Fixed

* BAF12: readibility
* doesn't use tomorrow's and yesterday's schedule (maybe just when timetable changes)
* Locatables are not returned in case of an error in configured gtfs-rt

=== Removed

* BAF18: signaling is out of scope


== v0.4

=== Fixed

* Line ID is used to identify lines, not name
* Timezones in departures are properly handled
* Multiple updates for a trip are supported in GTFS-RT
* Sped up converting line graphs by caching trips
* 3-digit colours and no colour for routes are handled when converting

=== Added

* Calgary Transit
* Alerts in Lua and GTFS-RT
* Vehicle positions in Lua
* Realtime cache is guarded with mutex

=== Changed

* Lua scripts are Go templates in separate files
* Finding valid GTFS version from newest backwards
* Realtime cache is grouped by feedID
* Locatables rect is limited
* Updated gzm_ztm GTFS-RT endpoint

== v0.3

=== Fixed

* [bug] sort nearby stops by distance across all feeds

=== Added

* Brussels STIB-MIVB (schedule and rt)
* REUSE compliance (https://reuse.software)
* Lua rt-api

=== Changed

* config in toml
* BAF25: single latest feed – get its validity from calendar/calendar_dates; move to /var/lib based on validity
* remove prevNodes from traffic::LineGraph,
* add -1:i to LineGraph.nextNodes (where i is starting node)
* make traffic::Line.headsigns [][]string
* make traffic::Line.graphs []LineGraph


== v0.2

=== Added

* Added flags and prepare function to feed for specific behaviour in GTFS files
* Added Metropolis GZM feed
* BAF33: searching by line

=== Changed

* Timetable validity is calculated based on feed_info.txt and calendars, not filename
* Decision to download a GTFS zip is additionally based on Etag
* Added feed ID in Stop and Line in API
* Added node name
* TRAFFIC schedule uses now BARE DSL specification from repo
* Removed unnecessary fields from config, added listening address and changed defaults
* Changed all remaining occurences of bimba server to szczanieckiej

* BAF34: shedules in /var/lib/szczanieckiej

=== Fixed

* Fixed feed last updated date
* BAF14: sort query results by revelance
* There can be multiple GTFS Schedules for one day


== v0.1

* BAF6: check if calendar.txt exists
* BAF7: check if calendar_dates.txt exists
* BAF8: check if any calendar was converted
* BAF13: alerts from gtfs_rt
* BAF1: get stop, feed timezone
* BAF26: joined feeds (eg. Kraków bus + Kraków tram)
* BAF27: default accept language
* BAF16: paginate departures
* BAF15: filter departures by line
* BAF23: ZTM_Poznań: vehicle capabilities -- read header
* BAF22: route for vehicle by vehicle -> one
* BAF2: get trip part from stop (times till next stops)
* BAF20: route for trip from stop
* BAF32: check boarding
* TRAFFIC: line graph
* TRAFFIC: lines index by line_name
* BAF4: TRAFFIC:converter: feed_info
* BAF5: TRAFFIC:converter: agencies
* BAF19: TRAFFIC: data structure for searching by coordinates
* BAF24: default contrasting colours in route // only line colour, no text colour
* BAF29: paginate items
* BAF17.1: route for enabled feeds
